﻿<?php

/*
 *Condições do teste:
 *
 * No início do teste:
 * - insere o time saopauloFC no banco, para comparação e informar que já existe;
 *
 * No Final:
 * - remove o time que saopauloFC e tabajarafc, esse último tendo sido
 * o caso de cadastro com sucesso no sistema.
 *
*/

require_once 'PHPUnit/Extensions/SeleniumTestCase.php';
require_once 'Conexao.php';

class TesteCadastroTime extends PHPUnit_Extensions_SeleniumTestCase {

    protected $receivedCon;
    protected $result;
    protected $insercaoBD = "INSERT INTO time(nome) VALUES('saopauloFC')";
    protected $remocaoBD = "DELETE FROM time WHERE nome='saopauloFC' or nome='tabajara fc'";

    protected function setUp() {
        $this->receivedCon = new Conexao();
        $this->receivedCon->conect();
        echo "conexao bem sucedida.\n";

        $this->result = $this->receivedCon->query($this->insercaoBD);
        echo "Operacao no banco de dados bem sucedida.\n";        

        $this->setBrowser("*firefox");
        $this->setBrowserUrl("http://localhost");
    }


    protected function tearDown() {

        $this->receivedCon->query($this->remocaoBD);
        echo "Banco deletado com sucesso.\n";
        $this->receivedCon->close();
        echo "Conexao finalizada com sucesso.\n\n";

    }

    public function logonAdmin(){
        $this->open("http://localhost/administrador/campeonato/cadastrar-time");
        $this->type("email", "fabiofeliciano@di.ufpb.br");
        $this->type("senha", "123456");
        $this->click("submit");

    }

    public function testCamposEmBranco() {        
        $this->logonAdmin();
        //$this->open("http://localhost/administrador/campeonato/cadastrar-time");
        $this->click("submit");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("O valor é obrigatório e não pode estar vazio"));
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testTamanhoExcedido() {
        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->type("time", "flamengoflamengoflamengoflamengo");
        $this->click("submit");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("O tamanho de"));
            $this->verifyTextPresent($this->isTextPresent("é superior a"));
            $this->verifyTextPresent($this->isTextPresent("caracteres"));

        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testTimeCadastrado() {
        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->type("time", "saopauloFC");
        $this->click("submit");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("Time já cadastrado."));
            //$this->assertTrue($this->isTextPresent("Time já cadastrado."));       
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());            
        }
    }

    public function testSucessoCadastro() {
        $this->logonAdmin();
        $this->waitForPageToLoad("30000");
        $this->type("time", "tabajara fc");
        $this->click("submit");
        $this->waitForPageToLoad("30000");
        try {
            $this->verifyTextPresent($this->isTextPresent("Time cadastrado com sucesso."));            
        } catch (PHPUnit_Framework_AssertionFailedError $e) {
            array_push($this->verificationErrors, $e->toString());           
        }
    }
}

?>